package com.kaili.basic.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.kaili.basic.pojo.dto.DeviceSignDTO;
import com.kaili.basic.pojo.dto.DeviceSignLocationDto;
import com.kaili.basic.pojo.entity.DeviceSignEntity;
import com.kaili.basic.pojo.vo.DeviceSignVO;
import com.kaili.common.response.RestStatus;

import java.util.List;

/**
*  service接口
* @author:zhouyijian
* @Time: 2019-07-24
* @Copyright: ©  杭州凯立通信有限公司 版权所有
* @Warning: 本内容仅限于公司内部传阅,禁止外泄或用于其它商业目的
*/
public interface IDeviceSignService extends IService<DeviceSignEntity> {

    /**
     * @Desc:查询签到详情
     * @author:zhouyijian
     * @time: 2019/7/25 20:17
     * @param dto
     * @return: Page<DeviceSignVO>
     */
    Page<DeviceSignVO> queryPageListDetail(DeviceSignDTO dto);

    /**
     * @Desc:设备签到
     * @author:zhouyijian
     * @time: 2019/7/26 11:28
     * @param dto
     * @return: RestStatus
     */
    String doCreateDeviceSign(DeviceSignDTO dto);
    /**
     * @Desc:根据条件查询设备签到信息
     * @author:zhouyijian
     * @time: 2019/7/26 11:28
     * @param dto
     * @return: List<DeviceSignVO>
     */
    List<DeviceSignVO> queryListByCondition(DeviceSignDTO dto);
    /**
     * @Desc:查询签到汇总信息
     * @author:zhouyijian
     * @time: 2019/7/26 16:09
     * @param dto
     * @return: List<DeviceSignVO>
     */
    List<DeviceSignVO> querySignTotal(DeviceSignDTO dto);

    /**
     * @Desc:更新设备签到信息
     * @author:zhouyijian
     * @time: 2019/7/29 9:31
     * @param dto
     * @return: com.kaili.common.response.RestStatus
     */
    RestStatus updateDeviceSignByImei(DeviceSignDTO dto);

    /** 根据设备imei获取设备最新位置
    * @Desc:
    * @author: shenliqiang
    * @Time: 2019/7/26 18:36
    *
    * @return com.kaili.basic.pojo.dto.DeviceSignLocationDTO
    */

    String[][] queryDeviceLocation(DeviceSignLocationDto dto);
    /**
    * @Desc:  查询设备轨迹
    * @author: shenliqiang
    * @Time: 2019/7/29 9:55
    * @param dto
    * @return java.util.List<com.kaili.basic.pojo.vo.DeviceSignLocationVo>
    */

    String[][] queryDeviceTrack(DeviceSignLocationDto dto);

}
